package com.yf.service.im;

import com.yf.entity.GroupUserEntity;
import com.yf.entity.MsgEntity;
import com.yf.entity.MsgGroupEntity;
import com.yf.service.BaseService;
import com.yf.vo.MsgGroupBackVo;
import com.yf.vo.MsgGroupUserVo;

import java.util.List;
import java.util.Map;

/**
 * 群聊Service接口
 *
 * @author hxf
 * @email 505860922@qq.com
 * @date Wed Aug 29 17:47:08 CST 2018
 */
public interface MsgGroupService extends BaseService<MsgGroupEntity> {

    /**
     * back 群聊管理
     * @param params
     * @return
     */
    List<MsgGroupBackVo> findMsgGroup(Map<String, Object> params);


    /**
     * 根据群号查询群
     * @param groupId
     * @return
     */
    MsgGroupBackVo findMsgGroupById(Long userId,Long groupId);

    /**
     * 加入群聊
     * @param groupId
     * @param userId
     * @return
     */
    GroupUserEntity addMsgGroupUser(Long groupId,Long userId);

    /**
     * 查询当前用户的群聊
     * @param userId
     * @return
     */
    List<MsgGroupUserVo> findMsgGroupByUserId(Long userId);


    //查询群主讲课记录
    List<MsgEntity> getAllGroupMsg(long groupId);



    /************接口重写*****************/

    /**
     * 创建或者修改当前用户的群
     * @param
     * @param msgGroupEntity
     * @return
     */
    MsgGroupEntity merge(long userId, MsgGroupEntity msgGroupEntity);

    //退出群聊
    boolean outGroup(long userId,Long gid);


    //群的所有信息
    Map findGroupUsers(long userId,long gid);

//    List<MsgEntity> getFriendChatRecord(long userId,long fid,Integer chatType,Integer page,Integer limit);

    //群信息列表
    List<MsgGroupEntity> getMsgGroupList(Long[] groupIds);


    /***************IM操作部分***************/

    /**
     * 创建或者拉人进群
     * @param userId  操作人
     * @param groupId 创建的群
     * @param userIds
     */
    MsgGroupEntity joinGroup(Long userId,Long groupId,List<Long> userIds);

}
